import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

/**
 * ClipOval可以用来裁剪圆形或者椭圆，ClipOval的定义跟ClipRect一样，
 * 只不过是ClipRect裁剪出来的是矩形。ClipOval也接受一个Rect参数作为裁剪局域，
 * 它将会以给定的Rect的中心为圆心来裁剪圆，如果Rect长宽一样那么裁剪出来的就是个圆形，
 * 相反会裁剪出一个椭圆。
 */
class ClipovalDemo extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Clipoval'),
        centerTitle: true,
      ),
      body: Container(
        alignment: Alignment.center,
        child: ClipOval(
          clipper:_Myclipper() ,
          child: Image.network('http://img.redocn.com/sheying/20150213/mulanweichangcaoyuanfengjing_3951976.jpg',fit: BoxFit.fill,),
        ),
      ),
    );
  }

}

class _Myclipper extends CustomClipper<Rect>{
  @override
  Rect getClip(Size size) {
    return Rect.fromLTRB(10,10, size.width-10, size.height-10);
  }

  @override
  bool shouldReclip(covariant CustomClipper<Rect> oldClipper) {
    return false;
  }

}